package com.neusoft.hifly.attachment.file.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import com.neusoft.hifly.attachment.file.entity.FileLogObj;

/**
 * Title: 附件服务
 * <p>
 * Description: 附件_附件表历史记录 Dao
 * <p>
 * Copyright: 2019
 * <p>
 * Company: 东软汉枫
 *
 * @author lh_neu
 * @version 1.0.0
 */
@Mapper
public interface IFileLogDao extends BaseMapper<FileLogObj> {

	/**
	 * 删除对象
	 *
	 * @param organCode
	 *            租户编码
	 * @param id
	 *            对象ID
	 */
	void deleteById(@Param("organCode") String organCode, @Param("id") int id);

	/**
	 * 删除多余的
	 *
	 * @param organCode
	 *            租户编码
	 * @param fileLogicId
	 *            主附件逻辑ID
	 * @param notInLogicId
	 *            除了这些都删除
	 */
	void deleteMore(@Param("organCode") String organCode, @Param("fileLogicId") long fileLogicId,
			@Param("notInLogicId") String notInLogicId);

	/**
	 * 根据id查询对象
	 *
	 * @param organCode
	 *            租户编码
	 * @param id
	 *            对象ID
	 * @return 对象
	 */
	FileLogObj getById(@Param("organCode") String organCode, @Param("id") int id);

	/**
	 * 统计所有
	 *
	 * @param organCode
	 *            租户编码
	 * @param organLogicId
	 *            租户ID
	 * @return 数量
	 */
	int countAll(@Param("organCode") String organCode, @Param("organLogicId") long organLogicId);

	/**
	 * 查询所有对象
	 *
	 * @param organCode
	 *            租户编码
	 * @param organLogicId
	 *            租户逻辑ID
	 * @return 对象集合
	 */
	List<FileLogObj> findAll(@Param("organCode") String organCode, @Param("organLogicId") long organLogicId);

	/**
	 * 主附件查询所有对象
	 *
	 * @param organCode
	 *            租户编码
	 * @param organLogicId
	 *            租户逻辑ID
	 * @param fileLogicId
	 *            主附件逻辑ID
	 * @return 对象集合
	 */
	List<FileLogObj> findByFileLogicId(@Param("organCode") String organCode, @Param("organLogicId") long organLogicId,
			@Param("fileLogicId") long fileLogicId);

}